function loadEnemyData() {
    var targetShot = function(e) {
        getReady(Dtype.enemyBullets, function(b) {
            b.init(e.x + e.width / 2, e.y + e.height / 2, Dtype.myFighter);
        });
    };

    var enemyData = [];

    // enemy 1
    enemyData.push({
        oncreate: function() {
            this.width = 32;
            this.height = 32;
            this.rotation = 0;
            this.frame = 4;
            this.speed = 5;
            this.hitSize = 10;
            this.y = Dtype.game.height - this.height;
        },
        onenterframe: function(e) {
            this.x -= this.speed;
            this.y = Dtype.game.height - this.height - 16;
            if (this.x < -64) this.destroy();
            
            var self = this;
            if (Math.random() * 100 < 1) targetShot(this);
        },
        ondestroy: function() {
        }
    });

    // enemy 2
    enemyData.push({
        oncreate: function() {
            this.width = 32;
            this.height = 32;
            this.rotation = -90;
            this.speed = 5;
            this.frame = 5;
            this.r = Math.random() * Math.PI * 2;
            this.hitSize = 10;
        },
        onenterframe: function(e) {
            this.r += 0.3;
            this.x -= this.speed;
            this.y += Math.sin(this.r) * 10;
            if (this.x < -64) this.destroy();
            
            var self = this;
            if (Math.random() * 100 < 1) targetShot(this);
        },
        ondestroy: function() {
            targetShot(this);
        }
    });

    // enemy 3
    enemyData.push({
        oncreate: function() {
            this.speed = 3;
            this.frame = 6;
            this.width = 32;
            this.height = 32;
            this.rotation = -90;
            this.scaleX = -2;
            this.scaleY = 2;
            this.hitSize = 30;
            this.hp = 3;
        },
        onenterframe: function(e) {
            this.x -= this.speed;
            if (this.x < -128) this.destroy();
        },
        ondestroy: function() {
            var self = this;
            for (var i = 0; i < Math.PI * 2; i += Math.PI/4) {
                getReady(Dtype.enemyBullets, function(b) {
                    b.init2(self.x + self.width / 2, self.y + self.height / 2, i);
                });
            }
        }
    });

    return enemyData;
}
